草庐IT

c++ - VC++ 2010 : Show open dialog hangs

全部标签

c++ - 结构的Printf? (C/C++, VC2008)

只需在VC2008中构建并运行:structA{inta;intb;intc;};Aa={10,20,30};printf("%d%d%d\n",a);这正常吗?102030我要投!但它不起作用:structA{inta;intb;intc;operatorint(){returna+b+c;}};Aa={10,20,30};printf("%d\n",a);输出只有:10我需要自动转换模板实用程序。这是:https://code.google.com/p/boolib/source/browse/boolib/crypt/ShakedValue.h它应该隐藏在内存中的值(value)

c++ - VC++中未初始化的内存块

众所周知,VisualC++运行时使用特殊的非零标记标记未初始化或刚刚释放的内存块。有没有办法完全禁用此行为而无需手动将所有未初始化的内存设置为零?由于0xFEEEFEEE!=0,这对我的有效非空检查造成了严重破坏。嗯,也许我应该解释得更好一点。我创建并初始化了一个变量(通过new),一切顺利。当我释放它(通过删除)时,它将指针设置为0xFEEEFEEE而不是NULL。当我插入对NULL的正确检查时,就像所有管理自己内存的好程序一样,我遇到了问题,因为0xFEEEFEEE传递了一个NULL检查没有问题。除了在删除它们时手动将所有指针设置为NULL之外,还有什么好方法可以检测内存何时已被

c++ - VC++允许/##/作为宏的值——如何在eclipse/mingw-gcc中处理它?

我正在尝试在eclipse/mingw-gcc中编译一个真正的win32应用程序,直到现在都没有成功(参见https://stackoverflow.com/questions/9162976/how-to-compile-a-win32-application-in-eclipse-using-the-mingw-gcc-toolchain)无论如何,在解决另一个错误时,文件c:\ProgramFiles(x86)\MicrosoftSDKs\Windows\v7.0A\Include\WTypes.h中的以下行引起了我的注意好奇心:#define_VARIANT_BOOL/##/它

C++ Armadillo : GCC vs VC++2013: Operator () and overloading

我正在尝试使用ArmadilloC++库开发Linux/Win64应用程序。以下代码在GCC-4.7中编译,但在使用Armadillo提供的VS项目文件的VisualStudio2013中编译失败。#include#include"armadillo"usingnamespacearma;usingnamespacestd;//worksinGCC-4.7//VC++2013:compileerror:C3066voidfoo1(vec::fixed&bar){bar(1)=1.;}//worksvoidfoo2(vec::fixed&bar){bar.at(2)=1.;}//work

c++ - Visual Studio 2010 C++,无法打开包含文件 : 'afxwin.h' , 'TCHAR.H' 和 'cassert'

我是VS2010的新手,并尝试编译一个曾经在VS2008中工作过的项目。错误看起来很简单:stdafx.h(43):fatalerrorC1083:无法打开包含文件:'afxwin.h':没有这样的文件或目录stdstring.h(619):fatalerrorC1083:无法打开包含文件:'TCHAR.H':没有这样的文件或目录threads.h(52):fatalerrorC1083:无法打开包含文件:'cassert':没有那个文件或目录我google了一下,这种错误经常发生在VS2010Express版中,但是我用的是VS2010ProfessionalEdition。我已经检

c++ - 这是 "new auto(enum_type)"的 Microsoft VC++ 2010 编译器错误吗

环境:MicrosoftVisualStudio2010withSP1Preminum(10.0.40219.1SP1Rel),WindowsXPSP3VC10编译器支持auto关键字,但推导的类型相关信息对于枚举似乎并不总是正确的。例子:#includeenumfruit_t{apple=100,banana=200,};intmain(){constautopa=newauto(banana);constautopb=newfruit_t(banana);static_assert(std::is_same::value,"notsame!");deletepb;deletepa;

c++ - 什么 VS2010 C 项目设置导致 exes 需要兼容模式

我已经在我的Windows764位机器上运行和编译了几个月的程序,但最近我不得不更改它使用的静态库的几个VC项目设置,现在生成的可执行文件需要我在“WindowsXP兼容模式”下运行它。在装有VisualStudio2010SP1的Windows764位机器上编译我正在生成的程序是在Win32Debug模式下构建的。静态库项目指定目标机器/X86。当我从调试器运行程序时,它会启动并运行,但是如果通过Windows图标运行,它需要XP兼容模式。当尝试在调试器之外启动时,EXE会在任务管理器中显示一秒钟然后消失。我已尝试在其上使用MicrosoftApplicationVerifier,但

c++ - visual c++ 2010 express 自动书写括号

在我安装VisualStudio之前,我一直在使用其他IDE,例如codeblocks和DevC++,有一个不错的选择,当我编写{时,它会自动关闭循环并将光标移至一个新行,我不需要像在VisualStudio中那样手动完成。VisualStudio中有这样的选项吗?如果是这样,我该如何启用它? 最佳答案 这是尝试让BraceCompleter适用于所有Express版本的hack(我无法测试它是否有效)。将包的扩展名从vsix更改为zip。找到文件扩展名.vsixmanifest并在文本编辑器中将其打开。有一个支持版本的列表。添加一

c++ - 使用 gdb 在 MS VC++ 2010 Express 中编译的调试程序

是否可以使用MicrosoftVisualC++Express构建可执行文件,以便使用gdb对其进行调试?我尝试使用C7兼容的/Z7编译器选项和/debug链接器选项,但生成的.pdb文件无法被gdb识别:(gdb)symbol-fileHelloWorldVC.pdb`HelloWorldVC.pdb':can'treadsymbols:Fileformatnotrecognized. 最佳答案 GDB的调试格式与Microsoft的编译器不同。实际上,没有记录PDB格式。因此,您不能将Microsoft编译器生成的调试信息与GD

c++ - Visual C++ 2010 Beta 2 上的复制省略

我正在阅读WantSpeed?PassbyValue在C++Nextblog上并创建了thisprogram感受C++0x中的复制省略和移动语义:#include#includeclassMoveableClass{public:MoveableClass():m_simpleData(0),instance(++Instances){std::coutdata):m_data(std::move(data)),m_simpleData(0),instance(++Instances){std::coutm_data;};intMoveableClass::Instances=0;bo